#include <iostream>
#include <unistd.h>
#include "ThreadPool.hpp"
#include "Log.hpp"
#include "Task.hpp"

using namespace log_ns;

int main()
{
    // lg.MessageToLog(__FILE__, __LINE__, INFO, "test message, %s: %d\n", "aaa", 3);
    // Log(INFO, "test message, %s: %d\n", "aaa", 3);
    // ThreadPool<int> tp;
    // tp.Init();
    // tp.Start();
    // sleep(1);

    // ThreadPool<Task> tp;
    // tp.Init();
    // tp.Start();
    // int cnt = 10;
    // while (cnt--)
    // {
    //     Task t(1, 2);
    //     tp.Equeue(t);
    //     LOG(INFO, "Eqeue a task: %s\n", t.debug());
    //     sleep(1);
    // }
    // // sleep(10);
    // tp.Stop();

    int cnt = 10;
    while (cnt--)
    {
        Task t(1, 2);
        ThreadPool<Task>::GetInstance()->Equeue(t);
        LOG(INFO, "Eqeue a task: %s\n", t.debug());
        sleep(1);
    }

    ThreadPool<Task>::GetInstance()->Stop();
    return 0;
}